package reflect;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * 使用反射机制实例化对象
 */
public class ReflectDemo2 {
    public static void main(String[] args) throws Exception {
        ArrayList list = new ArrayList();//程序写死，那么只能实例化ArrayList
        System.out.println(list);

        //反射机制实例化对象
        //1:获取要实例化的类的类对象
//        Class cls = Class.forName("java.util.ArrayList");
        /*
            java.lang.String
            java.util.HashMap
            reflect.Person
         */
        Scanner scanner = new Scanner(System.in);//反射机制可以运行起来根据需要实例化对象
        System.out.println("请输入要实例化的类的名字:");
        String className = scanner.nextLine();
        Class cls = Class.forName(className);
        /*
            2:类对象提供了方法:newInstance()
            Object newInstance()
            使用当前类对象表示的类的无参构造器(默认构造器)实例化

            等同于
            new ArrayList();
         */
        Object obj = cls.newInstance();
        System.out.println(obj);
    }
}








